<script>
import config from './config';
import store from '@/store';
import { getToken } from '@/utils/auth';
import updateCustomBarInfo from './tuniao-ui/libs/function/updateCustomBarInfo.js';

export default {
	onLaunch: function () {
		this.initApp();

		uni.getSystemInfo({
			success: function (e) {
				// #ifndef H5
				// 获取手机系统版本
				const system = e.system.toLowerCase();
				const platform = e.platform.toLowerCase();
				// 判断是否为ios设备
				if (platform.indexOf('ios') != -1 && (system.indexOf('ios') != -1 || system.indexOf('macos') != -1)) {
					Vue.prototype.SystemPlatform = 'apple';
				} else if (platform.indexOf('android') != -1 && system.indexOf('android') != -1) {
					Vue.prototype.SystemPlatform = 'android';
				} else {
					Vue.prototype.SystemPlatform = 'devtools';
				}
				// #endif
			}
		});

		// 获取设备的状态栏信息和自定义顶栏信息
		// store.dispatch('updateCustomBarInfo')
		updateCustomBarInfo().then((res) => {
			store.commit('$tStore', {
				name: 'vuex_status_bar_height',
				value: res.statusBarHeight
			});
			store.commit('$tStore', {
				name: 'vuex_custom_bar_height',
				value: res.customBarHeight
			});
		});

		// #ifdef MP-WEIXIN
		//更新检测
		if (wx.canIUse('getUpdateManager')) {
			const updateManager = wx.getUpdateManager();
			updateManager &&
				updateManager.onCheckForUpdate((res) => {
					if (res.hasUpdate) {
						updateManager.onUpdateReady(() => {
							uni.showModal({
								title: '更新提示',
								content: '新版本已经准备就绪，是否需要重新启动应用？',
								success: (res) => {
									if (res.confirm) {
										uni.clearStorageSync(); // 更新完成后刷新storage的数据
										updateManager.applyUpdate();
									}
								}
							});
						});

						updateManager.onUpdateFailed(() => {
							uni.showModal({
								title: '已有新版本上线',
								content: '小程序自动更新失败，请删除该小程序后重新搜索打开哟~~~',
								showCancel: false
							});
						});
					} else {
						//没有更新
					}
				});
		} else {
			uni.showModal({
				title: '提示',
				content: '当前微信版本过低，无法使用该功能，请更新到最新的微信后再重试。',
				showCancel: false
			});
		}
		// #endif
	},
	methods: {
		// 初始化应用
		initApp() {
			// 初始化应用配置
			this.initConfig();
			// 检查用户登录状态
			//#ifdef H5
			this.checkLogin();
			//#endif
		},
		initConfig() {
			this.globalData.config = config;
		},
		checkLogin() {
			if (!getToken()) {
				this.$tab.reLaunch('/pages/login');
			}
		}
	}
};
</script>

<style lang="scss">
@import '@/static/scss/index.scss';
@import './tuniao-ui/index.scss';
@import './tuniao-ui/iconfont.css';
</style>
